<template>
  <div>
    <!-- 频道列表 -->
    <van-tabs v-model="active" animated swipeable>
      <!-- 动态渲染列表数据 -->
      <van-tab v-for="item in channels" :key="item.id" :title="item.name">
        <channlesList :Clist="item"></channlesList>
      </van-tab>
    </van-tabs>
  </div>
</template>

<script>
// 导入文章列表子组件
import channlesList from "./components/channlesList.vue";
import { getMyChannels } from "@/api/channel";
export default {
  name: "home",
  components: {
    channlesList,
  },
  data() {
    return {
      active: 0,
      channels: [],
    };
  },
  //在created这个钩子函数中 调用 封装的loadChannels 因为created不适合写太多业务逻辑
  created() {
    // 调用封装好的 调用户自己的频道接口
    this.loadChannels();
  },
  // 封装一个方法 方法会自动调接口 拿到频道列表数据 然后丢到变量上
  methods: {
    async loadChannels() {
      const res = await getMyChannels();
      // console.log(res);
      this.channels = res.data.channels;
    },
  },
};
</script>

<style lang="less" scoped>
// 头部tab导航栏 固定
/deep/ .van-tabs__wrap {
  position: fixed;
  z-index: 1;
  top: 0px;
  width: 100vw;
}
// 深度选择器
// style加上scoped之后 样式只对当前组件生效 对父组件 子组件都没有作用
// 解决1 全局样式
// 解决2 深度选择器 /deep/
/deep/ .van-tabs {
  .van-tab {
    border-right: 1px solid #edeff3;
    min-width: 200px;
    height: 80px;
    .van-tab__text {
      font-size: 27px;
      color: #777777;
    }
  }

  .van-tab--active .van-tab__text {
    color: #333 !important;
  }
  .van-tabs__line {
    width: 31px !important;
    height: 6px;
    background: rgba(50, 150, 250, 1);
    border-radius: 3px;
    bottom: 8px;
  }
  .van-tabs__nav {
    padding: 0;
  }
}
</style>